package com.example.ssoserver.controller;

import cn.dev33.satoken.sso.config.SaSsoServerConfig;
import cn.dev33.satoken.sso.processor.SaSsoServerProcessor;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;

@RestController
public class SsoServerController {

    /**
     * SSO-Server端：处理所有SSO相关请求 (下面的章节我们会详细列出开放的接口)
     */
    @RequestMapping("/sso/*")
    public Object ssoRequest() {
        return SaSsoServerProcessor.instance.dister();
    }


    /**
     * SSO-Server端：处理所有SSO相关请求 (下面的章节我们会详细列出开放的接口)
     */
    @RequestMapping("/login")
    public SaResult login(String name,String password) {
        if("sa".equals(name) && "123456".equals(password)) {
            StpUtil.login(10001);
            return SaResult.ok("登录成功！").setData(StpUtil.getTokenValue());
        }
        return SaResult.error("登录失败！");
    }



    /**
     * 配置SSO相关参数
     */
    @Autowired
    private void configSso(SaSsoServerConfig ssoServer) {
        // 配置：未登录时返回的View
        ssoServer.notLoginView = () -> {
       /*     String msg = "当前会话在SSO-Server端尚未登录，请先访问"
                    + "<a href='/login?name=sa&password=123456' target='_blank'> doLogin登录 </a>"
                    + "进行登录之后，刷新页面开始授权";*/
            return new ModelAndView("index.html");
        };
    }





}